package com.fowo.api.model.supplier.flow.form.relation;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 供应商流程表单实例 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SupplierFlowFormRelationImportPo {

  /** 标题 */
  @ExcelProperty("标题")
  @Size(max = 1024, message = "标题长度不能超过1024")
  private String title;

  /** 编号 */
  @ExcelProperty("编号")
  @Size(max = 128, message = "编号长度不能超过128")
  private String code;

  /** 任务编码 */
  @ExcelProperty("*任务编码")
  @NotBlank(message = "任务编码不能为空")
  private String enCode;

  /** 流程节点 */
  @ExcelProperty("*流程节点")
  @NotBlank(message = "流程节点不能为空")
  @Size(max = 128, message = "流程节点长度不能超过128")
  private String flowNodeIdEnCode;

  @ExcelIgnore
  @Schema(title = "*流程节点")
  private String flowNodeId;

  /** 表单id */
  @ExcelProperty("*表单id")
  @NotBlank(message = "表单id不能为空")
  @LongString(message = "表单id数值格式不正确", label = "表单id", min = 0L)
  private String formId;

  /** 表单状态 */
  @ExcelProperty("*表单状态")
  @NotBlank(message = "表单状态不能为空")
  private String formStatus;

  /** 发起人 */
  @ExcelProperty("发起人")
  @Size(max = 50, message = "发起人长度不能超过50")
  private String startUserName;

  @ExcelIgnore
  @Schema(title = "发起人")
  private String startUser;

  /** 执行人 */
  @ExcelProperty("*执行人")
  @NotBlank(message = "执行人不能为空")
  @Size(max = 50, message = "执行人长度不能超过50")
  private String doUserName;

  @ExcelIgnore
  @Schema(title = "*执行人")
  private String doUser;

  /** 拾取人 */
  @ExcelProperty("*拾取人")
  @NotBlank(message = "拾取人不能为空")
  @Size(max = 50, message = "拾取人长度不能超过50")
  private String toUserName;

  @ExcelIgnore
  @Schema(title = "*拾取人")
  private String toUser;

  /** 转发人 */
  @ExcelProperty("转发人")
  @Size(max = 50, message = "转发人长度不能超过50")
  private String forwardUserName;

  @ExcelIgnore
  @Schema(title = "转发人")
  private String forwardUser;

  /** 经办人 */
  @ExcelProperty("*经办人")
  @NotBlank(message = "经办人不能为空")
  @Size(max = 50, message = "经办人长度不能超过50")
  private String operatorUserName;

  @ExcelIgnore
  @Schema(title = "*经办人")
  private String operatorUser;

  /** 截止时间 */
  @ExcelProperty("截止时间")
  @DateTimeString(message = "截止时间不是有效的时间日期格式")
  private String endTime;
}
